#!/bin/bash 
set -x

args=(
	
  # 必须使用e1000 网卡，不然网络能ping通，但是VRM无法添加CNA
  # 并且第一个网口必须得是管理网口  
  #  第一张网卡对应交换机内部的 MEth 0/0/0 接口
  -device e1000,netdev=manage0,mac=aa:52:00:00:aa:10 \
  -netdev tap,id=manage0,ifname=ce0_manage,script="../Huawei_fusion_compute_qemu_script/add_to_manage_bridge.sh" 


  -device e1000,netdev=z0,mac=aa:52:00:00:aa:20 
  -netdev tap,id=z0,ifname=z0,script=no

)

#add_tap_network(){

for ((i=0;i<10;i++)); do



#	switch_port=430$(printf "%02d" $i)
#	server_port=400$(printf "%02d" $i)
	
#	if !  sudo lsof -Pi :$switch_port  -sTCP:LISTEN >/dev/null 2>&1 ; then
		# 两台虚拟机通过 TCP 回环 12345 ↔ 12346 互相认为“网线直连”		
		# 1.启动“永不下线”的 TCP 中继（宿主机执行）
#		echo 方向: $switch_port 收到的帧 → $server_port；
#		socat TCP-LISTEN:$switch_port,reuseaddr,fork TCP:127.0.0.1:$server_port &
		
		
#		echo 方向: $server_port 收到的帧 → $switch_port；
#		socat TCP-LISTEN:$server_port,reuseaddr,fork TCP:127.0.0.1:$switch_port &


#	fi

	name=./script_${i}.sh

	if ! ip link show ce_br${i} >>/dev/null 2>&1; then	
		
		echo 创建 ce_br${i} 网桥
		brctl addbr ce_br${i}
		
	fi

	cat << EOF > ${name}
#!/bin/bash

brctl addif ce_br${i} ce${i}
ip link set ce${i} up	
ip link set ce_br${i} up
EOF
	chmod +x ${name}

	args+=(	
		-device e1000,netdev=net$i,mac=54:52:00:00:00:$(printf "%02d" $i) 
  		-netdev tap,id=net$i,ifname=ce${i},script="${name}"
  		#-netdev socket,id=net$i,connect=127.0.0.1:$switch_port
		# QEMU 7.0 及更早版本 不支持 unix: 关键字（代码里只认 TCP/UDP/多播），
		# 所以把 unix:/tmp/xxx 当成 TCP 主机名 unix 去解析，自然报
		# “can't resolve host address 'unix'”。
		#-netdev socket,id=net$i,connect=unix:$switch_sock

	)
done	


#for i in /sys/class/net/ce_br*/bridge/group_fwd_mask; do 
#	echo 65535 | sudo tee $i; 
#done

#}

#exit 0

args+=(
	-smp 2 -m 2048 -name CE12800-CE 
	-uuid d3655400-3cb7-4815-a742-097e5fc9bed9 
	-drive file=./virtioa.qcow2,if=virtio,bus=0,unit=0,cache=none 
	-machine type=q35,accel=kvm 
	-serial mon:stdio 
	-nographic 
	-nodefaults 
	-rtc base=utc 
	-cpu host,vmx=off,svm=off
)
# ssh到交换机，发现backspace按下无效
# 这是 SSH 客户端把 本地键盘的 Delete/Backspace 键码 发给了交换机，而交换机侧的 shell（通常是 VRP 的 Bash 或 BusyBox）把它当成普通字符，于是光标不往回走，你看到的现象就是“Backspace 无效”。
# 根本原因是 终端类型/键码映射不匹配，跟交换机本身无关，改客户端就行。
#stty erase ^H





#/opt/qemu-2.12.0/bin/
qemu-system-x86_64  ${args[@]} 



